import random

from pynput import keyboard
from playsound import playsound
from threading import Thread

soundList = ['sound/1.mp3', 'sound/2.mp3', 'sound/3.mp3']

# 记录当前用户按了多少次键盘
count = 0

def onRealease(key):
    """
    这个函数是在用户释放键盘按键时，会被调用到
    这个函数不是我们自己主动调用的，而是把这个函数交给了 Listener，
    而是由 Listener 在用户释放按键的时候自动调用的
    这样的函数叫作 “回调函数”
    :param key: 用户按下了哪个键
    """
    print(key)
    global count
    count += 1
    if count % 10 == 0:
        # 播放音频！
        # 生成随机数
        i = random.randient(0, len(soundList) - 1)
        # 此处的播放音频耗时多，可能会引起输入的卡顿
        # 可以创建一个线程，在线程里播放音频
        # playsound(soundList[i])
        t = Thread(target=playsound, args=(soundList[i], ))
        t.start()

# 当创建好 Listener 后，用户的键盘按键动作就会被捕捉到
listener = keyboard.Listener(on_release=onRealease)
listener.start()
listener.join()

# 播放音频可能出现卡顿